package cn.maxxieyi.aichatbot.dto;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class GmoreAiChatRequest extends AiChatRequest {

    @JSONField(serialize=false)
    private String apiKey;

    /**
     * 请求Id，每次请求必须保持不重复
     */
    private String reqId;

    /**
     * 用户消息
     */
    private String message;

    /**
     * 历史消息
     */
    private List<HistoryMessageVO> history;

    /**
     * 是否流式输出
     */
    private Boolean stream;

    /**
     * 是否需要衍生问题
     */
    private Boolean followUp;

    /**
     * 是否返回引用知识库内容
     */
    private Boolean refKbase ;

    /**
     * 是否返回插件执行过程
     */
    private Boolean pluginProcesses;

    /**
     * 是否简单输出模式，不以Markdown格式输出，默认false
     */
    private Boolean simpleOut = true;

    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public static class HistoryMessageVO {
        /**
         * 消息类型：ack-用户提问，answer-最终回复，knowledge-知识库内容，function_call-工具调用，tool_response-工具调用响应，follow_up-相关问题，finish-消息结束，warning-错误提醒消息
         */
        private String type;
        /**
         * 消息内容
         */
        private String content;
    }
}
